import type { Settings } from './typing';
/** 登录密码加密公钥 */
const publicKey =
  // eslint-disable-next-line max-len
  'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCHqXl6pfiwPBbMIHBGdQ97jTw0VLf1iAxWStaa64vnF/qAaNOigfm+LSnOnZJRL5JCrz4ZeXtSxPSwCv2Eay4yivJ5qS4LTKPUBvNPJnbYE0T/TXkbZ78l6A3kgYRZxQ5E1WnU4B81UmtZmO9AG+q8RH13nXl/K0+VO2GZPOHbTwIDAQAB';
/**
 * window.$config为全局静态配置资源，
 * 开发时在public/static/config.js下进行配置,
 * 打包后该文件会生成到dist目录下static/config.js下
 * 打包后直接修改配置，实时生效无需重新打包
 */
/**
 * 全局参数统一配置
 */
export const settings: Settings = {
  /** 应用ID */
  appId: window.$config.appId || '1',
  /** 登录密码加密公钥 */
  publicKey,
  /** 应用初始默认标题 */
  appName: window.$config.appName,
  /** 默认布局模式 */
  layout: 'side',
  /** 默认皮肤配置 */
  primaryColor: '#1F76CB',
  /** axios网络请求配置 */
  axiosRequestConfig: {
    timeout: 60000,
    baseURL: import.meta.env.VITE_APP_API_BASE_URL
  },
  // 路由配置(vue-router)
  routerOptions: {
    base: import.meta.env.VITE_APP_PUBLIC_PATH
  },
  /** 表格默认参数配置 */
  table: {
    /** 表格大小 */
    size: window.$config.table.size,
    /** 每页条数 */
    pageSize: window.$config.table.pageSize,
    /** 行高 */
    rowHeight: 36,
    /** 展示树形数据时，每层缩进的宽度，以 px 为单位 */
    indentSize: 24,
    /** 每页条数可选项 */
    pageSizeOptions: window.$config.table.pageSizeOptions
  },
  /** 附件默认参数 */
  uploader: {
    /** 可上传的文件类型 */
    fileType: '',
    /** 文件存储方式 */
    saveType: window.$config.uploader.saveType,
    /** 是否支持预览 */
    allowPreview: true,
    /** 预览服务地址 */
    previewDomain: ''
  },
  /** 控制台地址,配置该地址后默认开启根据用户跳转控制台 */
  consoleUrl: window.$config.consolePath,
  /** 单点登录配置 */
  ssoConfig: {
    /** 单点登录方式，未开启单点和多种单点方式配置空，其余按照具体单点方式配置 */
    ssoFlag: window.$config.ssoConfig.ssoFlag
  },
  /** 通用选择组件配置 */
  commonSelectExtends: {
    /**
     * 选人组件中人员附加信息配置，可配置附加信息的显隐或展示内容。
     * @type Boolean | Array
     * 设置为 true 时，默认展示组件moreUserInfo属性中的所有属性，也可在组件插槽中进行人员附加信息的自定义配置
     * 设置为 数组时 ，仅展示该数组中包含的属性值，属性顺序也为展示顺序
     * 数组类型可选值：
     * deptid(部门id) | deptname(部门名称) | loginName(登录名称) | no(用户编号) | secretLevel(用户密级)| deptNamePath(部门全路径)|orgName(用户所属组织)
     */
    showMoreUserInfo: ['deptname'],
    /** 选人-角色、群组、岗位三个维度待选区的展示视图类型 table tree */
    viewType: 'tree',
    /**
     * 选部门组件中人员附加信息配置，可配置附加信息的显隐或展示内容。
     * @type Boolean | Array
     * 设置为 true 时，默认展示组件moreDeptInfo属性中的所有属性，也可在组件插槽中进行人员附加信息的自定义配置
     * 设置为 数组时 ，仅展示该数组中包含的属性值，属性顺序也为展示顺序
     * 数组类型可选值：
     * orgName(部门所属组织) | deptNamePath(部门名称)
     */
    showMoreDeptInfo: ['deptNamePath'],
    selectedUserSortable: true // 已选数据是否可排序
  },
  modal: {
    /**
     * 弹窗组件挂载位置。
     * @type String
     * 设置为body时，弹窗挂载在body元素下，设置为tab时，弹窗挂载在标签页页面下
     * String类型可选值：
     * body (全局展示)| tab (标签页内展示)
     */
    placement: 'body'
  },
  /** 同域名下部署多套不共用平台服务的系统时，需要指定不同的命名空间区分cookie中的token */
  cookies: {
    namespace: window.$config?.cookies?.namespace ? window.$config.cookies.namespace : ''
  },
  // 用户是否可修改首页
  editablePortlet: window.$config.editablePortlet,
  // 展示切换首页类型'tile': 首页平铺展示；'dropdown': 页签下拉展示
  portletShowType: window.$config.portletShowType,
  // 流程详情页内容形式：'tab':多页签形式；'collapse':锚点形式;'pushDown':流程跟踪下滑形式（V5样式）
  flowDetailShowType: window.$config.flow.flowDetailShowType
};
